package com.gzhryc.net_marketing.cloud.micro.api.dto.v1.order;

import com.gzhryc.common.api.SecurityResponse;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class MemberOrderCountResponse extends SecurityResponse<MemberOrderCountResponse.Body> {

    private static final long serialVersionUID = 1L;

    public MemberOrderCountResponse() {
        this.body = new Body();
    }

    public MemberOrderCountResponse(Integer code) {
        this.body = new Body();
        this.code = code;
    }

    public MemberOrderCountResponse(Integer code, String msg) {
        this.body = new Body();
        this.code = code;
        this.msg = msg;
    }

    public static class Body implements Serializable {

        private static final long serialVersionUID = 1L;

        private Integer waitPayCount = 0;           //等待支付订单数量
        private Integer waitDeliverCount = 0;      //等待发货订单数量
        private Integer waitReceiptCount = 0;       //等待收货订单数量
        private Integer waitEvaluationCount = 0;    //等待评价订单数量

        private Integer teamPayWaitPayCount = 0;    //等待支付的团拼
        private Integer teamPayExecuteCount = 0;    //执行中的团拼

        public List<TeamPayOrder> teamPayOrders;

        public Integer getWaitPayCount() {
            return waitPayCount;
        }

        public void setWaitPayCount(Integer waitPayCount) {
            this.waitPayCount = waitPayCount;
        }

        public Integer getWaitDeliverCount() {
            return waitDeliverCount;
        }

        public void setWaitDeliverCount(Integer waitDeliverCount) {
            this.waitDeliverCount = waitDeliverCount;
        }

        public Integer getWaitReceiptCount() {
            return waitReceiptCount;
        }

        public void setWaitReceiptCount(Integer waitReceiptCount) {
            this.waitReceiptCount = waitReceiptCount;
        }

        public Integer getWaitEvaluationCount() {
            return waitEvaluationCount;
        }

        public void setWaitEvaluationCount(Integer waitEvaluationCount) {
            this.waitEvaluationCount = waitEvaluationCount;
        }

        public Integer getTeamPayWaitPayCount() {
            return teamPayWaitPayCount;
        }

        public void setTeamPayWaitPayCount(Integer teamPayWaitPayCount) {
            this.teamPayWaitPayCount = teamPayWaitPayCount;
        }

        public Integer getTeamPayExecuteCount() {
            return teamPayExecuteCount;
        }

        public void setTeamPayExecuteCount(Integer teamPayExecuteCount) {
            this.teamPayExecuteCount = teamPayExecuteCount;
        }

        public List<TeamPayOrder> getTeamPayOrders() {
            return teamPayOrders;
        }

        public void setTeamPayOrders(List<TeamPayOrder> teamPayOrders) {
            this.teamPayOrders = teamPayOrders;
        }
    }

    public static class TeamPayOrder implements Serializable {

        private static final long serialVersionUID = 1L;

        private Long applyId;
        private Long goodsId;
        private String goodsName;
        private String goodsImg;
        private Integer teamMemberTotal;
        private Integer teamMemberCount;
        private String payMoney;
        private String teamPayMoney;
        private String endDate;

        private List<MemberItem> members;

        public TeamPayOrder(){
            this.members = new ArrayList<>();
        }

        public Long getApplyId() {
            return applyId;
        }

        public void setApplyId(Long applyId) {
            this.applyId = applyId;
        }

        public Long getGoodsId() {
            return goodsId;
        }

        public void setGoodsId(Long goodsId) {
            this.goodsId = goodsId;
        }

        public String getGoodsName() {
            return goodsName;
        }

        public void setGoodsName(String goodsName) {
            this.goodsName = goodsName;
        }

        public String getGoodsImg() {
            return goodsImg;
        }

        public void setGoodsImg(String goodsImg) {
            this.goodsImg = goodsImg;
        }

        public Integer getTeamMemberTotal() {
            return teamMemberTotal;
        }

        public void setTeamMemberTotal(Integer teamMemberTotal) {
            this.teamMemberTotal = teamMemberTotal;
        }

        public Integer getTeamMemberCount() {
            return teamMemberCount;
        }

        public void setTeamMemberCount(Integer teamMemberCount) {
            this.teamMemberCount = teamMemberCount;
        }

        public String getPayMoney() {
            return payMoney;
        }

        public void setPayMoney(String payMoney) {
            this.payMoney = payMoney;
        }

        public String getTeamPayMoney() {
            return teamPayMoney;
        }

        public void setTeamPayMoney(String teamPayMoney) {
            this.teamPayMoney = teamPayMoney;
        }

        public String getEndDate() {
            return endDate;
        }

        public void setEndDate(String endDate) {
            this.endDate = endDate;
        }

        public List<MemberItem> getMembers() {
            return members;
        }

        public void setMembers(List<MemberItem> members) {
            this.members = members;
        }
    }


    public static class MemberItem implements Serializable {

        private static final long serialVersionUID = 1L;

        private Long memberId;
        private String nickname;
        private String faceImg;
        private Integer type;

        public Long getMemberId() {
            return memberId;
        }

        public void setMemberId(Long memberId) {
            this.memberId = memberId;
        }

        public String getNickname() {
            return nickname;
        }

        public void setNickname(String nickname) {
            this.nickname = nickname;
        }

        public String getFaceImg() {
            return faceImg;
        }

        public void setFaceImg(String faceImg) {
            this.faceImg = faceImg;
        }

        public Integer getType() {
            return type;
        }

        public void setType(Integer type) {
            this.type = type;
        }
    }
}
